#pragma once
#include <list>
#include "TCharSupport.h"
#include "EpilForStatementCodeBase.h"
#include "EpilExpressionCodeBase.h"

using namespace std;


class EpilForNumberStatementCode : public EpilForStatementCodeBase
{
	EPIL_CODE_DECL( ForNumberStatement );

public:
	EpilForNumberStatementCode( const EpilLexLocation & location );
	virtual ~EpilForNumberStatementCode();

	tstring								GetVariable() const								{ return m_variable; }
	void								SetVariable( const tstring & variable )			{ m_variable = variable; }
	EpilExpressionCodeBase *			GetBegin() const								{ return m_begin; }
	void								SetBegin( EpilExpressionCodeBase * begin )		{ m_begin = begin; }
	EpilExpressionCodeBase *			GetEnd() const									{ return m_end; }
	void								SetEnd( EpilExpressionCodeBase * end )			{ m_end = end; }
	EpilExpressionCodeBase *			GetStep() const									{ return m_step; }
	void								SetStep( EpilExpressionCodeBase * step )		{ m_step = step; }

	virtual tstring						ToEpilCode( int indent ) const;

private:
	tstring								m_variable;
	EpilExpressionCodeBase *			m_begin;
	EpilExpressionCodeBase *			m_end;
	EpilExpressionCodeBase *			m_step;
};
